﻿#include "CInfoExchangeForSensor.h"
#include "CPublicData.h"
#include "CHeader.h"

CInfoExchangeForSensor::CInfoExchangeForSensor(QObject *parent)
{}

CInfoExchangeForSensor::~CInfoExchangeForSensor()
{}

void CInfoExchangeForSensor::handleCtrProt(SReqDataParam stParam)
{
	return;
}

void CInfoExchangeForSensor::handleMsgProt(SReqDataParam stParam)
{
	if (stParam.nReqWay == 0)
	{
		handleMsgDevice(stParam);
	}
	else if (stParam.nReqWay == 1)
	{
		handleMsgScene(stParam);
	}
}

void CInfoExchangeForSensor::handleMsgDevice(SReqDataParam stParam)
{
	SRspDataParam stRspData;
	stRspData.sRspGuid = stParam.sReqGuid;
	stRspData.nCmd = stParam.nCmd;
	stRspData.nRspType = stParam.nReqType;
	stRspData.nRspWay = stParam.nReqWay;
	stRspData.sSceneType = stParam.sSceneType;

	/*以下为处理报文推送的代码*/
	QString sDevGuid = stParam.sReqGuid;
	//if (sDevGuid == "all")//获取全部的机器人实时数据
	//{
	//	if (CPublicData::instance().m_pMapIFDev.size() > 0)
	//	{
	//		QMap<QString, IFDev*> mapIFDev = CPublicData::instance().m_pMapIFDev;
	//		QJsonArray qRspArray;
	//		for (QMap<QString, IFDev*>::iterator itor = mapIFDev.begin(); itor != mapIFDev.end(); itor++)
	//		{
	//			IFDev* pDev = itor.value();
	//			//非声振温设备，不执行
	//			if (!(pDev->m_nDevType == enDSensorSeries))
	//			{
	//				continue;
	//			}

	//			QString sDevGuid = itor.key();
	//			CDevDataSensorSeries* pDevData = (CDevDataSensorSeries*)pDev->m_pDevData;
	//			QJsonObject qRspJson;
	//			qRspJson.insert("DevGuid", pDevData->m_sDevGuid);							 //PLC连接状态
	//			qRspJson.insert("DevName", pDevData->m_sDevName);						     //设备名称
	//			qRspJson.insert("BeltName", pDevData->m_sBeltName);						     //归属皮带名
	//			qRspJson.insert("Ip", pDevData->m_sIp);										 //IP地址
	//			QJsonArray qChannelArray;//通道数组
	//			for (QMap<int, SChannel>::iterator itor = pDevData->m_mapChannel.begin(); itor != pDevData->m_mapChannel.end(); itor++)
	//			{
	//				QJsonObject channel;
	//				channel.insert("ChannelNo", itor.value().nChannelNo);//通道号
	//				channel.insert("ChannelName", itor.value().sChannelName);//通道名
	//				channel.insert("Enable", itor.value().nIsEnable);//是否启用
	//				channel.insert("State", itor.value().nState);//在线状态
	//				qChannelArray.append(channel);
	//			}
	//			qRspJson.insert("ChannelList", qChannelArray);
	//			qRspArray.append(qRspJson);
	//		}
	//		QJsonDocument qRspJsonDocument(qRspArray);
	//		QByteArray qRspJsonByteArray = qRspJsonDocument.toJson(QJsonDocument::Compact);
	//		stRspData.sRspParam = QString(qRspJsonByteArray);
	//		stRspData.nStatus = 200;
	//		stRspData.sMsg = A2T("获取设备实时数据成功");
	//	}
	//	else
	//	{
	//		stRspData.sRspParam = "";
	//		stRspData.nStatus = 500;
	//		stRspData.sMsg = A2T("无设备");
	//	}
	//}
	//else//根据设备guid获取单个设备的实时数据
	//{
	//	if (CPublicData::instance().m_pMapIFDev.contains(sDevGuid))
	//	{
	//		IFDev* pDev = CPublicData::instance().m_pMapIFDev[sDevGuid];
	//		//非机器人 不执行
	//		if (!(pDev->m_nDevType == enDSensorSeries))
	//		{
	//			stRspData.sRspParam = "";
	//			stRspData.nStatus = 500;
	//			stRspData.sMsg = A2T("该设备Guid对应的设备不是声振温设备");
	//		}
	//		else 
	//		{
	//			CDevDataSensorSeries* pDevData = (CDevDataSensorSeries*)pDev->m_pDevData;
	//			QJsonArray qRspArray;
	//			QJsonObject qRspJson;
	//			qRspJson.insert("DevGuid", pDevData->m_sDevGuid);							 //PLC连接状态
	//			qRspJson.insert("DevName", pDevData->m_sDevName);						     //设备名称
	//			qRspJson.insert("BeltName", pDevData->m_sBeltName);						     //归属皮带名
	//			qRspJson.insert("Ip", pDevData->m_sIp);										 //IP地址
	//			QJsonArray qChannelArray;//通道数组
	//			for (QMap<int, SChannel>::iterator itor = pDevData->m_mapChannel.begin(); itor != pDevData->m_mapChannel.end(); itor++)
	//			{
	//				QJsonObject channel;
	//				channel.insert("ChannelNo", itor.value().nChannelNo);//通道号
	//				channel.insert("ChannelName", itor.value().sChannelName);//通道名
	//				channel.insert("Enable", itor.value().nIsEnable);//是否启用
	//				channel.insert("State", itor.value().nState);//在线状态
	//				qChannelArray.append(channel);
	//			}
	//			qRspJson.insert("ChannelList", qChannelArray);
	//			qRspArray.append(qRspJson);
	//			QJsonDocument qRspJsonDocument(qRspArray);
	//			QByteArray qRspJsonByteArray = qRspJsonDocument.toJson(QJsonDocument::Compact);
	//			stRspData.sRspParam = QString(qRspJsonByteArray);
	//			stRspData.nStatus = 200;
	//			stRspData.sMsg = A2T("获取设备实时数据成功");
	//		}
	//	}
	//	else
	//	{
	//		stRspData.sRspParam = "";
	//		stRspData.nStatus = 500;
	//		stRspData.sMsg = A2T("不存在该设备");
	//	}
	//}

	/*队列任务执行结束 返回响应信息*/
	QString sRspParamString = "";
	createRspMsgString(stRspData, sRspParamString);
	emit sigSendRspMsgString(sRspParamString);
}

void CInfoExchangeForSensor::handleMsgScene(SReqDataParam stParam)
{
	return;
}
